package com.ogier.app.jeu.export;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import com.ogier.app.jeu.Plateau;

public abstract class ExportFormatImpl implements ExportFormat {

	public abstract String export(Plateau p);

	public void save(Plateau p, String fichierExport) throws IOException {
		FileWriter fichier = new FileWriter(fichierExport);
		fichier.append(export(p));
		fichier.close();
	}

	public String loadFile(String fichierImport) throws IOException {
		FileReader fichier = new FileReader(fichierImport);
		BufferedReader br = new BufferedReader(fichier);
		StringBuffer resultat = new StringBuffer();
		String s;
		while ((s = br.readLine()) != null) {
			resultat.append(s);
		}
		fichier.close();
		return resultat.toString();
	}

	public abstract Plateau generatePlateau(String plateauString) throws Exception;

	public Plateau load(String nomFichier) throws Exception {

		String plateauString = loadFile(nomFichier);

		return generatePlateau(plateauString);
	}
}
